package com.xuecheng.api.course;


import com.xuecheng.framework.domain.course.*;
import com.xuecheng.framework.domain.course.ext.CategoryNode;
import com.xuecheng.framework.domain.course.ext.CourseInfo;
import com.xuecheng.framework.domain.course.ext.CourseView;
import com.xuecheng.framework.domain.course.ext.TeachplanNode;
import com.xuecheng.framework.domain.course.request.CourseListRequest;
import com.xuecheng.framework.domain.course.response.CoursePublishResult;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;

@Api(value = "课程管理系统",description = "课程管理系统接口")
public interface CourseControllerApi {
    @ApiOperation("课程计划查询")
    TeachplanNode findTeachplanList(String courseId);
    @ApiOperation("添加课程计划")
    ResponseResult addTeacholan(Teachplan teachplan);
    @ApiOperation("查询我的课程列表")
    QueryResponseResult<CourseInfo> findCourseList(int page, int size);
    @ApiOperation("根据公司id查询课程")
    QueryResponseResult<CourseInfo> findCourseList(int page,
                                                          int size,
                                                          CourseListRequest courseListRequest);
    @ApiOperation("查询课程列表")
    CategoryNode  findCourse();
    @ApiOperation("添加课程")
    ResponseResult addCourse(CourseBase coursebase);
    @ApiOperation("根据课程id查询课程信息")
    CourseBase findByCourseId(String courseId);
    @ApiOperation("更新课程信息")
    ResponseResult updateCoursebase(String courseId,CourseBase courseBase);
    @ApiOperation("根据课程id查询课程营销信息")
    CourseMarket getCourseMarketById(String courseId);
    @ApiOperation("更新课程营销信息")
    ResponseResult updateCourseMarket(String id,CourseMarket courseMarket);
    @ApiOperation("查询课程图片")
    CoursePic findCoursePic(String courseId);
    @ApiOperation("保存课程图片")
    ResponseResult addCoursePic(String courseId,String pic);
    @ApiOperation("删除课程图片")
    ResponseResult deleteCoursePic(String courseId);
    @ApiOperation("课程视图查询")
    CourseView courseView(String id);
    @ApiOperation("预览课程")
    CoursePublishResult preview(String id);
    @ApiOperation("发布课程")
    CoursePublishResult publish(String id);
    @ApiOperation("保存媒资信息")
    ResponseResult savemedia(TeachplanMedia teachplanMedia);
}
